﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Split
{
    static class Args
    {
        static public void Split(ref List<Functions> CodeFunctions)
        {
            string[] DEFAULT = { "Default", "None", "private", "None" };//デフォルト設定

            int FuncCount = 0;//関数カウンタ
            foreach (Functions ff in CodeFunctions)
            {
                string[] Args = ff.Name.Split(':');//トークンで切り分ける


                string[] Temp = { "", "", "", "" };//作業用変数

                for (int i = 0; i < Args.Length; i++)//省略していない部分
                {
                        Temp[i] = Args[i];//省略していない部分は反映する。
                }

                for (int i = 0; i < DEFAULT.Length; i++)//省略部分の穴埋め
                {
                    if (Temp[i] == "")//空なら
                    {
                        Temp[i] = DEFAULT[i];//デフォルト設定を反映する。
                    }
                }

                Args = Temp;//大元に反映

                CodeFunctions[FuncCount].Name = Args[0];//名前を設定
                foreach (string exp in Args[1].Split(','))
                {
                    CodeFunctions[FuncCount].ArgName.Add(exp);//引数リスト(コンマ区切り)を設定
                }
                CodeFunctions[FuncCount].Class = Args[3];//所属クラスの設定　デフォルトは所属しない
                CodeFunctions[FuncCount].AccessLevel = Args[2];//アクセスレベルの設定　デフォルトはprivate

                FuncCount++;//次の要素を参照
            }

        }
    }
}